﻿using EcoSystem;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;

namespace EcoSystem
{
    /// <summary>
    /// 报表配置领域模型对应的DTO
    /// </summary>
    public class ReportConfigDto : ExtensibleFullAuditedEntityDto<Guid>
    {
        /// <summary>
        /// 所属分类
        /// </summary>
        public Guid CategoryId { get; set; }

        /// <summary>
        /// 报表名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 报表编码
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 关联权限名
        /// </summary>
        public string PermissionName { get; set; }

        /// <summary>
        /// 数据源
        /// </summary>
        public ReportSourceConfig DataSource { get; set; }

        /// <summary>
        /// 报表请求参数定义
        /// </summary>
        public ReportRequestOptions RequestOptions { get; set; }

        /// <summary>
        /// 报表展示列配置
        /// </summary>
        public List<ReportColumnConfig> ReportColumns { get; set; }

        /// <summary>
        /// 汇总列配置
        /// </summary>
        public List<SummaryColumnConfig> SummaryColumns { get; set; }

        /// <summary>
        /// 报表表格扩展属性
        /// </summary>
        public Dictionary<string, object> ReportProps { get; set; }

        /// <summary>
        /// 排序号
        /// </summary>
        public int SortIndex { get; set; }

        /// <summary>
        /// 启用标识
        /// </summary>
        public bool Status { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }
    }
}
